﻿//Cursor.Current = Cursors.WaitCursor;


using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Net;
using System.Text;
using System.Windows.Forms;
using OpenNETCF.Net;
using OpenNETCF.Net.Ftp;


namespace FtpWork
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //private static FtpWebRequest request;

        //private static Stream ftpRequestStream;

        //private static void Connect()
        //{

        //    FtpRequestCreator creator = new FtpRequestCreator();

        //    WebRequest.RegisterPrefix("ftp:", creator);

        //    // Building our URI object

        //    Uri testUri;

        //    if ("192.168.1.9:2121".IndexOf("ftp:") != 0)

        //        testUri = new Uri("ftp://" + "192.168.1.9:21");

        //    else

        //        testUri = new Uri("192.168.1.9:21");

        //    // Creating a new FtbRequest object

        //    request = (FtpWebRequest)WebRequest.Create(testUri);

        //    request.Credentials = new NetworkCredential("login", "password");

        //    // Getting the Request stream

        //    ftpRequestStream = request.GetRequestStream();

        //    StreamReader reader = new StreamReader(ftpRequestStream);
        //}

        public static void Upload(string filename, string uploaduri)
        {
            try
            {
                // Создадим объект для работы с ftp
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uploaduri);
                // Укажем действие, которое нужно произвести
                request.Method = WebRequestMethods.Ftp.UploadFile;
                // Так как прокси сервер нельзя использовать при выгрузке, то не используем его
                request.Proxy = null;
                // Открываем поток для отправки файла
                Stream stream = request.GetRequestStream();
                // и поток для чтения файла
                FileStream filestream = File.Open(filename, FileMode.Open);

                // Читаем и отправляем файл на сервер
                byte[] buffer = new byte[1024];
                int bytesread;
                do
                {
                    bytesread = filestream.Read(buffer, 0, buffer.Length);
                    stream.Write(buffer, 0, bytesread);
                }
                while (bytesread > 0);

                // Закрываем все потоки и выводим сообщение о завершении
                FtpWebResponse response = (FtpWebResponse)request.GetResponse();
                stream.Close();
                filestream.Close();
                response.Close();
                Console.WriteLine("Upload complete");
            }
            catch { }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Upload("\\test.txt", textBox1.Text);
        }

//        public static void Download(string downloaduri, string filename)
//        {
//            try
//            {
//                // Создадим запрос для работы с ftp
//                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uploaduri);
//                request.Method = WebRequestMethods.Ftp.DownloadFile;
//                // и объект ответа сервера
//                FtpWebResponse response = (FtpWebResponse)request.GetResponse();
//                // Открываем поток для получения файла
//                Stream stream = response.GetRequestStream();
//                // и поток для записи в файл
//                FileStream filestream = FileStream.Create(filename);

//                // Получаем и сохрпняем файл
//                byte[] buffer = new byte[1024];
//                int bytesread;
//                do
//                {
//                    bytesread = stream.Read(buffer, 0, buffer.Length);
//                    filestream.Write(buffer, 0, bytesread);
//                }
//                while (bytesread > 0);

//                // Закрываем все потоки и выводим сообщение о завершении
//                FtpWebResponse response = (FtpWebResponse)request.GetResponse();
//                stream.Close();
//                filestream.Close();
//                response.Close();
//                Console.WriteLine("Download complete");
//            }
//            catch { }
//        }

//        // Функция вывода детализированного списка файлов
//        private static void List(string uri)
//{
//    try
//    {
//        // Создадим запрос для работы с ftp
//        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uploaduri);
//        // Выбираем получение детального списка файлов
//        request.Method WebRequestMethods.Ftp.ListDirectoryDetails;
//        FtpWebResponse response = (FtpWebResponse)request.GetResponse();
//        StreamReader reader = new StreamReader(response.GetResponseStream());
//        // Выводим полученный список
//        Console.WriteLine(reader.ReadToEnd());
//    }
//    catch { }
//} 
    }
}